| Total Complexity | 2 | 
| Total Lines | 28 | 
| Duplicated Lines | 0 % | 
| Changes | 0 | ||
| 1 | import { | ||
| 17 | |||
| 18 | @Controller('customers') | ||
| 19 | @ApiTags('Customer') | ||
| 20 | @ApiBearerAuth() | ||
| 21 | @UseGuards(AuthGuard('bearer'), RolesGuard) | ||
| 22 | export class CreateCustomerAction { | ||
| 23 | constructor( | ||
| 24 |     @Inject('ICommandBus') | ||
| 25 | private readonly commandBus: ICommandBus | ||
| 26 |   ) {} | ||
| 27 | |||
| 28 | @Post() | ||
| 29 | @Roles(UserRole.COOPERATOR, UserRole.EMPLOYEE) | ||
| 30 |   @ApiOperation({summary: 'Create new customer'}) | ||
| 31 |   public async index(@Body() customerDto: CustomerDTO) { | ||
| 32 |     const { | ||
| 33 |       address: {street, city, zipCode, country}, | ||
| 34 | name | ||
| 35 | } = customerDto; | ||
| 36 | |||
| 37 |     try { | ||
| 38 | const id = await this.commandBus.execute( | ||
| 39 | new CreateCustomerCommand(name, street, city, zipCode, country) | ||
| 40 | ); | ||
| 41 | |||
| 42 |       return {id}; | ||
| 43 |     } catch (e) { | ||
| 44 | throw new BadRequestException(e.message); | ||
| 45 | } | ||
| 48 |